New versions of operating systems for computing devices are of interest to many people, including ordinary computer users, parties seeking to make and distribute unauthorized copies of the operating system, manufacturers of competing operating systems and developers of applications to execute on the operating system. Sometimes, this level of interest leads some who have legitimate access to the code of the operating system while it is in development to reveal details of the new version before it is officially released.
There can be many undesired consequences for the manufacturer of an operating system when a version of the operating system is leaked in this way. Competitors may gain access to the operating system and use it improperly in competing with the operating system manufacturer. Though, even less malicious uses can be harmful. Pre-release leaks, for example, can reduce the cachet of new features in the operating system when it is officially released, thereby hurting sales. Also, problems can arise if the developmental version contains features that are not fully debugged, creating the erroneous perception that the final version of the operating system will not work well. Additionally, parties planning to make applications or components that interact with the new version of the operating system may implement their products based on the leaked development version, only to find that, when a version is officially released, their products do not work as intended because of changes to the operating system between the leak and the official release.
There are various ways that these leaks can occur. Sometimes, information about the new version of the operating system is leaked from within a development organization by someone within that organization making an unauthorized release of a build of the operating system. In a developmental organization, software source code may be maintained within developmental servers. These servers may include a configuration management system that tracks versions of files or other components holding the components of the operating system.
A large team of software developers may work on the source code. Each may check-out from the configuration management system pieces of the source code on which that developer is working. When a developer is done working on a piece of the software, that developer may check it into the configuration management system, allowing another developer to check it out and work on it.
From time to time, the latest version of the various components of the source code may be assembled into a build. In addition to collecting the latest version of each component of the operating system, a build server may convert the software source code into an executable form, creating an executable object for the build. This object may then be tested or otherwise used for legitimate purposes related to the development of the operating system. In some instances, the object may be stored on a distribution server from which others can make copies of the object for testing.
Leaks may occur at any point in the process. In some instances, leaks may occur when an unauthorized build is created. The object created as part of this build may be copied and distributed on the Internet or in other ways. As another example, the object to be leaked may be obtained from a distribution server.